package com.xz.xzmybatisagent;

import org.apache.ibatis.plugin.Interceptor;

import java.util.List;

/**
 * <p>
 * 增强工具类
 * </p>
 *
 * @author DONG.WANG17@HAND-CHINA.COM
 * @since 2025/3/11-03-11 22:52
 */
public class EnhanceUtils {

    /**
     * 增强拦截器. 此方法会因为 mybatis pluginAll 方法的多次调用而调用
     *
     * @param interceptors 拦截器列表
     * @param sqlPort      sql 发送端口
     * @param activePort   拦截器状态监听端口
     */
    public synchronized static void addMyInterceptor(List<Interceptor> interceptors, int sqlPort, int activePort) {
        /*
         * 这里通过监听是否active，决定是否添加拦截器。
         * 此处不会判断拦截器实例，只要是class类名符合。就会执行添加/删除操作
         * */
        ActiveService.createListener(activePort).listen(interceptors, MySqlLogInterceptor.getInstance(sqlPort));
    }

}
